SPSS RANK 命令
作者:Ruben Geert van den Berg,归属于 SPSS A-Z
概述
SPSS 的 RANK
命令可以创建一个新变量,用于保存另一变量值的排名。RANK
命令也可用于将连续变量离散化为 ntile 组。本教程将介绍 RANK
命令的主要选项,并提供一些实际示例。
第一个 RANK 语法示例的结果
1. SPSS Rank 基础示例
运行下面的 语法 首先创建一个小型数据集,然后对 income
(收入)进行排名(结果如截图所示)。新变量的默认名称是 R
加上旧变量的名称,即 Rincome
。请注意,系统缺失值 不会获得任何排名。如果一个值出现多次,则被称为并列 (tie)。默认情况下,并列的值会被分配平均排名。
SPSS Rank 语法示例 1
***1. 创建小型数据集。
**
data list free/income.
begin data
3000 2500 '' 2000 2500 2700 2200
end data.
***2. 创建包含 income 排名的新变量。
**
rank income.
***3. 按照 income 对个案进行升序排序。
**
sort cases income.
2. 创建 N 分位数 (Ntiles)
以下示例都将使用 employees.sav 数据集。下面的语法展示了如何使用 RANK
命令创建四个大小相等的年龄组。(如果样本量不能被组数整除,或者存在并列,SPSS 将尝试使组的大小尽可能相等。) 首先,新变量名为 Ndate_of
,其中 N
表示 N 分位数。SPSS 对 RANK
创建的新变量名最多使用 8 个字母。这就是为什么我们没有得到 Ndate_of_birth
(正如我们可能期望的那样)。在第 4 步中,我们将使用 MEANS
命令来检查结果。
SPSS Rank 语法示例 2
***1. 设置默认目录并打开数据。
**
cd 'd:downloaded'.
get file 'employees.sav'.
***2. 创建四个年龄组。
**
rank date_of_birth
/ntiles(4).
***3. 重命名新变量。
**
rename variables ndate_of = age_group.
***4. 检查结果。
**
means date_of_birth by age_group
/cells count min max.
3. 组内排名 (Rank Within Groups)
到目前为止,我们使用 RANK
命令针对的是整个样本。但是,我们也可以在由一个或多个变量定义的组内进行 RANK
排名。例如,下面的语法分别在每个性别内创建中位年龄组。当这些与 gender
(性别)组合时,我们将得到四个组,分别指示 50% 最年轻的女性、50% 最年长的女性等等。请注意,我们通过简单地重新打开数据来撤消到目前为止对数据所做的所有更改。
SPSS Rank 语法示例 3
***1. 重新打开数据文件。
**
get file 'employees.sav'.
***2. 在性别内创建中位年龄组。
**
rank date_of_birth by gender
/ntiles(2).
***3. 将年龄组与性别组合。
**
compute gender_age_group = 2 * gender + ndate_of.
***4. 对个案进行排序有助于直观检查。
**
sort cases gender date_of_birth.
***5. 为新变量应用值标签 (value labels)。
**
value labels gender_age_group 1 'Old woman' 2 'Young woman' 3 'Old man' 4 'Young man'.
4. 排名到 (Rank Into)
在第二个示例中,我们使用了基本的 RANK
命令,然后使用 RENAME
命令来更改新变量的名称。或者,我们可以使用 INTO
关键字在 RANK
命令本身中指定一个新变量名,如下面的语法所示。
SPSS Rank 语法示例 4
***1. 重新打开数据文件。
**
get file 'employees.sav'.
***2. 创建 age_group。
**
rank date_of_birth
/ntiles(4) into age_group.
5. 对多个变量进行排名 (Rank Multiple Variables)
如果您想对多个变量进行 RANK
排名,您可以在一个命令中完成。例如,下面的示例为 date_of_birth
(出生日期)、experience_years
(工作年限)和 monthly_income
(月收入)创建 中位数 组。
SPSS Rank 语法示例 5
***1. 重新打开数据文件。
**
get file 'employees.sav'.
***2. 一次性为三个变量创建中位数组。
**
rank date_of_birth experience_years monthly_income
/ntiles(2) into dic_age dic_experience dic_income.
6. 降序排名 (Ranking Descendingly)
如果您足够仔细,您可能已经注意到上一个示例中有些奇怪的地方:对于 dic_experience
和 dic_income
,较高的值表示更多的经验/收入。但是,对于 dic_age
,情况正好相反。这是因为我们使用了 date_of_birth
,它与年龄成反比。一种解决方案是首先计算原始年龄(另请参见 如何在 SPSS 中计算年龄?),然后使用它来代替。但是,一种更简单的方法是(仅)对 date_of_birth
进行降序 RANK
排名。只需在最后一个语法中将 RANK date_of_birth
替换为 RANK date_of_birth (D)
即可。
最终说明
- 请注意,排名到 N 分位数 (ntile) 与 RECODE 非常相似。但是,使用
RANK
命令,分隔 ntile 组的值取决于数据,而使用RECODE
命令,组的大小取决于数据。